package org.jeecg.modules.common.bean;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Classname MqttClientInfo
 * @Description TODO
 * @Date 2022/12/3 21:38
 * @Created by 10835
 */
@Data
public class MqttClientInfo implements Serializable {

    /**
     * data : [{"recv_msg.dropped":0,"send_pkt":12,"enable_authn":true,"disconnected_at":"2022-12-03T21:13:07.481+08:00","proto_name":"MQTT","mqueue_dropped":0,"send_msg.dropped.expired":0,"is_persistent":true,"username":"boot","awaiting_rel_cnt":0,"created_at":"2022-12-03T21:02:54.388+08:00","connected_at":"2022-12-03T21:02:54.389+08:00","expiry_interval":7200000,"ip_address":"10.60.66.195","recv_msg.qos1":0,"connected":false,"recv_msg.dropped.await_pubrel_timeout":0,"inflight_max":32,"send_msg.qos2":0,"mqueue_max":1000,"recv_msg.qos0":0,"send_msg.dropped":0,"recv_msg":0,"keepalive":60,"inflight_cnt":0,"recv_pkt":13,"recv_msg.qos2":0,"reductions":72765,"listener":"tcp:default","clientid":"boot_inbound","subscriptions_cnt":2,"zone":"default","is_bridge":false,"proto_ver":4,"send_msg.qos1":0,"send_msg.dropped.queue_full":0,"send_msg":0,"clean_start":false,"subscriptions_max":"infinity","send_msg.dropped.too_large":0,"mailbox_len":0,"mqueue_len":0,"awaiting_rel_max":100,"node":"emqx@192.168.64.3","heap_size":1598,"send_msg.qos0":0,"port":5895,"disconn_props":{},"mountpoint":null},{"recv_msg.dropped":0,"send_pkt":1123,"enable_authn":true,"send_oct":2254,"proto_name":"MQTT","mqueue_dropped":0,"send_msg.dropped.expired":0,"recv_cnt":7849,"is_persistent":false,"username":"dekiot","awaiting_rel_cnt":0,"created_at":"2022-12-03T16:52:07.029+08:00","connected_at":"2022-12-03T16:52:07.029+08:00","expiry_interval":0,"ip_address":"192.168.64.1","recv_msg.qos1":0,"connected":true,"recv_msg.dropped.await_pubrel_timeout":0,"inflight_max":32,"send_msg.qos2":0,"mqueue_max":1000,"recv_msg.qos0":8801,"send_msg.dropped":0,"recv_msg":8801,"keepalive":60,"inflight_cnt":0,"recv_pkt":9924,"recv_msg.qos2":0,"reductions":11353828,"listener":"tcp:default","clientid":"env_01","subscriptions_cnt":2,"recv_oct":923862,"zone":"default","is_bridge":false,"proto_ver":4,"send_msg.qos1":0,"send_msg.dropped.queue_full":0,"send_msg":0,"clean_start":true,"subscriptions_max":"infinity","send_msg.dropped.too_large":0,"mailbox_len":0,"mqueue_len":0,"send_cnt":1123,"awaiting_rel_max":100,"node":"emqx@192.168.64.3","heap_size":610,"send_msg.qos0":0,"port":35202,"mountpoint":null},{"recv_msg.dropped":0,"send_pkt":1127,"enable_authn":true,"send_oct":2262,"proto_name":"MQTT","mqueue_dropped":0,"send_msg.dropped.expired":0,"recv_cnt":6751,"is_persistent":false,"username":"dekiot","awaiting_rel_cnt":0,"created_at":"2022-12-03T16:52:02.228+08:00","connected_at":"2022-12-03T16:52:02.228+08:00","expiry_interval":0,"ip_address":"192.168.64.1","recv_msg.qos1":0,"connected":true,"recv_msg.dropped.await_pubrel_timeout":0,"inflight_max":32,"send_msg.qos2":0,"mqueue_max":1000,"recv_msg.qos0":5624,"send_msg.dropped":0,"recv_msg":5624,"keepalive":60,"inflight_cnt":0,"recv_pkt":6751,"recv_msg.qos2":0,"reductions":7631276,"listener":"tcp:default","clientid":"smoke_01","subscriptions_cnt":2,"recv_oct":407277,"zone":"default","is_bridge":false,"proto_ver":4,"send_msg.qos1":0,"send_msg.dropped.queue_full":0,"send_msg":0,"clean_start":true,"subscriptions_max":"infinity","send_msg.dropped.too_large":0,"mailbox_len":0,"mqueue_len":0,"send_cnt":1127,"awaiting_rel_max":100,"node":"emqx@192.168.64.3","heap_size":2586,"send_msg.qos0":0,"port":35194,"mountpoint":null}]
     * meta : {"count":3,"limit":100,"page":1}
     */

    private MetaBean meta;
    private List<DataBean> data;

    @Data
    public static class MetaBean implements Serializable {
        /**
         * count : 3
         * limit : 100
         * page : 1
         */

        private int count;
        private int limit;
        private int page;
    }

    @Data
    public static class DataBean implements Serializable {
        @SerializedName("recv_msg.dropped")
        private int _$Recv_msgDropped31; // FIXME check this code
        private int send_pkt;
        private boolean enable_authn;
        private String disconnected_at;
        private String proto_name;
        private int mqueue_dropped;
        @SerializedName("send_msg.dropped.expired")
        private int _$Send_msgDroppedExpired168; // FIXME check this code
        private boolean is_persistent;
        private String username;
        private int awaiting_rel_cnt;
        private String created_at;
        private String connected_at;
        private int expiry_interval;
        private String ip_address;
        @SerializedName("recv_msg.qos1")
        private int _$Recv_msgQos167; // FIXME check this code
        private boolean connected;
        @SerializedName("recv_msg.dropped.await_pubrel_timeout")
        private int _$Recv_msgDroppedAwait_pubrel_timeout100; // FIXME check this code
        private int inflight_max;
        @SerializedName("send_msg.qos2")
        private int _$Send_msgQos298; // FIXME check this code
        private int mqueue_max;
        @SerializedName("recv_msg.qos0")
        private int _$Recv_msgQos07; // FIXME check this code
        @SerializedName("send_msg.dropped")
        private int _$Send_msgDropped266; // FIXME check this code
        private int recv_msg;
        private int keepalive;
        private int inflight_cnt;
        private int recv_pkt;
        @SerializedName("recv_msg.qos2")
        private int _$Recv_msgQos2236; // FIXME check this code
        private int reductions;
        private String listener;
        private String clientid;
        private int subscriptions_cnt;
        private String zone;
        private boolean is_bridge;
        private int proto_ver;
        @SerializedName("send_msg.qos1")
        private int _$Send_msgQos126; // FIXME check this code
        @SerializedName("send_msg.dropped.queue_full")
        private int _$Send_msgDroppedQueue_full318; // FIXME check this code
        private int send_msg;
        private boolean clean_start;
        private String subscriptions_max;
        @SerializedName("send_msg.dropped.too_large")
        private int _$Send_msgDroppedToo_large216; // FIXME check this code
        private int mailbox_len;
        private int mqueue_len;
        private int awaiting_rel_max;
        private String node;
        private int heap_size;
        @SerializedName("send_msg.qos0")
        private int _$Send_msgQos0303; // FIXME check this code
        private int port;
        private DisconnPropsBean disconn_props;
        private Object mountpoint;
        private int send_oct;
        private int recv_cnt;
        private int recv_oct;
        private int send_cnt;

        @Data
        public static class DisconnPropsBean implements Serializable {
        }
    }
}
